package interfaz;

import java.util.ArrayList;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class Usuario
{
	String ip;
	ArrayList<String> amigos;
	ArrayList<String> archivos;
	
	public Usuario ( String i )
	{
		ip = i;
		amigos = new ArrayList<String>();
		archivos = new ArrayList<String>();
	}
	
	public String getIP ( )
	{
		return ip;
	}
	
	public ArrayList<String> getAmigos ( )
	{
		return amigos;
	}
	
	public ArrayList<String> getArchivos ( )
	{
		return archivos;
	}
	
	public void addAmigo ( String ip )
	{
		if ( !amigos.contains( ip ) )
			amigos.add( ip );
	}
	
	public void addArchivo ( String nombre )
	{
		if ( !archivos.contains( nombre ))
			archivos.add( nombre );
	}
	
	public void removeAmigo ( String ip )
	{
		amigos.remove( ip );
	}
	
	public void removeArchivo ( String nombre )
	{
		archivos.remove( nombre );
	}
	
	public void generarXML ( Element elementoUsuarios, Document redJoyP2P )
    {
        Element elementoUsuario = redJoyP2P.createElement( "usuario" );
        elementoUsuario.setAttribute( "ip", ip );

        if ( !amigos.isEmpty() )
        {
        	Element elementoAmigos = redJoyP2P.createElement( "amigos" );
        	for ( String a : amigos )
        	{
        		Element elementoAmigo = redJoyP2P.createElement( "amigo" );
        		elementoAmigo.setAttribute( "ip", a );
        		elementoAmigos.appendChild( elementoAmigo );
        	}
        	elementoUsuario.appendChild( elementoAmigos );
        }

        if ( !archivos.isEmpty() )
        {
        	Element elementoArchivos = redJoyP2P.createElement( "archivos" );
        	for ( String a : archivos )
        	{
        		Element elementoArchivo = redJoyP2P.createElement( "archivo" );
        		elementoArchivo.setAttribute( "nombre", a );
        		elementoArchivos.appendChild( elementoArchivo );
        	}
        	elementoUsuario.appendChild( elementoArchivos );
        }

        elementoUsuarios.appendChild( elementoUsuario );
    }
	
}
